home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Amiga Format CD 46
/
Amiga Format CD46 (1999-10-20)(Future Publishing)(GB)[!][issue 1999-12].iso
/
-in_the_mag-
/
reader_requests
/
scilab
/
man
/
man-part1
/
cat6
/
lmisolver.6
< prev
next >
Wrap
Text File
|
1999-09-16
|
3KB
|
133 lines
lmisolver(1) Scilab Function lmisolver(1)
NAME
lmisolver - linear matrix inequation solver
CALLING SEQUENCE
[XLISTF[,OPT]] = lmisolver(XLIST0,evalfunc [,options])
PARAMETERS
XLIST0 : a list of containing initial guess (e.g.
XLIST0=list(X1,X2,..,Xn))
evalfunc : a Scilab function ("external" function with specific syntax)
XLISTF : a list of matrices (e.g. XLIST0=list(X1,X2,..,Xn))
options : optional parameter. If given, options is a real row vector with
5 components [Mbound,abstol,nu,maxiters,reltol]
The syntax the function evalfunc must be as follows:
[LME,LMI,OBJ]=evalfunct(X) where X is a list of matrices, LME, LMI are
lists and OBJ a real scalar.
DESCRIPTION
lmisolver solves the following problem:
minimize f(X1,X2,...,Xn) a linear function of Xi's
under the linear constraints: Gi(X1,X2,...,Xn)=0 for i=1,...,p and LMI
(linear matrix inequalities) constraints:
Hj(X1,X2,...,Xn) > 0 for j=1,...,q
The functions f, G, H are coded in the Scilab function evalfunc and the set
of matrices Xi's in the list X (i.e. X=list(X1,...,Xn)).
The function evalfun must return in the list LME the matrices
G1(X),...,Gp(X) (i.e. LME(i)=Gi(X1,...,Xn), i=1,...,p). evalfun must
return in the list LMI the matrices H1(X0),...,Hq(X) (i.e.
LMI(j)=Hj(X1,...,Xn), j=1,...,q). evalfun must return in OBJ the value of
f(X) (i.e. OBJ=f(X1,...,Xn)).
lmisolver returns in XLISTF, a list of real matrices, i. e.
XLIST=list(X1,X2,..,Xn) where the Xi's solve the LMI problem:
Defining Y,Z and cost by:
[Y,Z,cost]=evalfunc(XLIST), Y is a list of zero matrices,
Y=list(Y1,...,Yp), Y1=0, Y2=0, ..., Yp=0.
Z is a list of square symmetric matrices,
Z=list(Z1,...,Zq) , which are semi positive definite
Z1>0, Z2>0, ..., Zq>0 (i.e. spec(Z(j)) > 0),
cost is minimized.
lmisolver can also solve LMI problems in which the Xi's are not matrices
but lists of matrices. More details are given in the documentation of LMI-
TOOL.
EXAMPLE
//Find diagonal matrix X (i.e. X=diag(diag(X), p=1) such that
//A1'*X+X*A1+Q1 < 0, A2'*X+X*A2+Q2 < 0 (q=2) and trace(X) is maximized
n=2;A1=rand(n,n);A2=rand(n,n);
Xs=diag(1:n);Q1=-(A1'*Xs+Xs*A1+0.1*eye);
Q2=-(A2'*Xs+Xs*A2+0.2*eye);
deff('[LME,LMI,OBJ]=evalf(Xlist)','X=Xlist(1),LME=X-diag(diag(X));...
LMI=list(-(A1''*X+X*A1+Q1),-(A2''*X+X*A2+Q2)),OBJ= -sum(diag(X)) ');
X=lmisolver(list(zeros(A1)),evalf);X=X(1)
[Y,Z,c]=evalf(X)
SEE ALSO
lmitool